; HtmlHelp.h
; Copyright (c) 1996-1997, Microsoft Corp. All rights reserved.
; converted to fasm format


; Commands to pass to HtmlHelp()

HH_DISPLAY_TOPIC	= 0x0000
HH_HELP_FINDER		= 0x0000  ; WinHelp equivalent
HH_DISPLAY_TOC		= 0x0001
HH_DISPLAY_INDEX	= 0x0002
HH_DISPLAY_SEARCH	= 0x0003
HH_SET_WIN_TYPE 	= 0x0004
HH_GET_WIN_TYPE 	= 0x0005
HH_GET_WIN_HANDLE	= 0x0006
HH_ENUM_INFO_TYPE	= 0x0007  ; Get Info type name, call repeatedly to enumerate, -1 at end
HH_SET_INFO_TYPE	= 0x0008  ; Add Info type to filter.
HH_SYNC 		= 0x0009
HH_RESERVED1		= 0x000A
HH_RESERVED2		= 0x000B
HH_RESERVED3		= 0x000C
HH_KEYWORD_LOOKUP	= 0x000D
HH_DISPLAY_TEXT_POPUP	= 0x000E  ; display string resource id or text in a popup window
HH_HELP_CONTEXT 	= 0x000F  ; display mapped numeric value in dwData
HH_TP_HELP_CONTEXTMENU	= 0x0010  ; text popup help, same as WinHelp HELP_CONTEXTMENU
HH_TP_HELP_WM_HELP	= 0x0011  ; text popup help, same as WinHelp HELP_WM_HELP
HH_CLOSE_ALL		= 0x0012  ; close all windows opened directly or indirectly by the caller
HH_ALINK_LOOKUP 	= 0x0013  ; ALink version of HH_KEYWORD_LOOKUP
HH_GET_LAST_ERROR	= 0x0014  ; not currently implemented // See HHERROR.h
HH_ENUM_CATEGORY	= 0x0015  ; Get category name, call repeatedly to enumerate, -1 at end
HH_ENUM_CATEGORY_IT	= 0x0016  ; Get category info type members, call repeatedly to enumerate, -1 at end
HH_RESET_IT_FILTER	= 0x0017  ; Clear the info type filter of all info types.
HH_SET_INCLUSIVE_FILTER = 0x0018  ; set inclusive filtering method for untyped topics to be included in display
HH_SET_EXCLUSIVE_FILTER = 0x0019  ; set exclusive filtering method for untyped topics to be excluded from display
HH_INITIALIZE		= 0x001C  ; Initializes the help system.
HH_UNINITIALIZE 	= 0x001D  ; Uninitializes the help system.
HH_PRETRANSLATEMESSAGE	= 0x00fd  ; Pumps messages. (NULL, NULL, MSG*).
HH_SET_GLOBAL_PROPERTY	= 0x00fc  ; Set a global property. (NULL, NULL, HH_GPROP)

HHWIN_PROP_TAB_AUTOHIDESHOW = 1 shl 0	 ; Automatically hide/show tri-pane window
HHWIN_PROP_ONTOP	    = 1 shl 1	 ; Top-most window
HHWIN_PROP_NOTITLEBAR	    = 1 shl 2	 ; no title bar
HHWIN_PROP_NODEF_STYLES     = 1 shl 3	 ; no default window styles (only HH_WINTYPE.dwStyles)
HHWIN_PROP_NODEF_EXSTYLES   = 1 shl 4	 ; no default extended window styles (only HH_WINTYPE.dwExStyles)
HHWIN_PROP_TRI_PANE	    = 1 shl 5	 ; use a tri-pane window
HHWIN_PROP_NOTB_TEXT	    = 1 shl 6	 ; no text on toolbar buttons
HHWIN_PROP_POST_QUIT	    = 1 shl 7	 ; post WM_QUIT message when window closes
HHWIN_PROP_AUTO_SYNC	    = 1 shl 8	 ; automatically ssync contents and index
HHWIN_PROP_TRACKING	    = 1 shl 9	 ; send tracking notification messages
HHWIN_PROP_TAB_SEARCH	    = 1 shl 10	 ; include search tab in navigation pane
HHWIN_PROP_TAB_HISTORY	    = 1 shl 11	 ; include history tab in navigation pane
HHWIN_PROP_TAB_FAVORITES    = 1 shl 12	 ; include favorites tab in navigation pane
HHWIN_PROP_CHANGE_TITLE     = 1 shl 13	 ; Put current HTML title in title bar
HHWIN_PROP_NAV_ONLY_WIN     = 1 shl 14	 ; Only display the navigation window
HHWIN_PROP_NO_TOOLBAR	    = 1 shl 15	 ; Don't display a toolbar
HHWIN_PROP_MENU 	    = 1 shl 16	 ; Menu
HHWIN_PROP_TAB_ADVSEARCH    = 1 shl 17	 ; Advanced FTS UI.
HHWIN_PROP_USER_POS	    = 1 shl 18	 ; After initial creation, user controls window size/position
HHWIN_PROP_TAB_CUSTOM1	    = 1 shl 19	 ; Use custom tab #1
HHWIN_PROP_TAB_CUSTOM2	    = 1 shl 20	 ; Use custom tab #2
HHWIN_PROP_TAB_CUSTOM3	    = 1 shl 21	 ; Use custom tab #3
HHWIN_PROP_TAB_CUSTOM4	    = 1 shl 22	 ; Use custom tab #4
HHWIN_PROP_TAB_CUSTOM5	    = 1 shl 23	 ; Use custom tab #5
HHWIN_PROP_TAB_CUSTOM6	    = 1 shl 24	 ; Use custom tab #6
HHWIN_PROP_TAB_CUSTOM7	    = 1 shl 25	 ; Use custom tab #7
HHWIN_PROP_TAB_CUSTOM8	    = 1 shl 26	 ; Use custom tab #8
HHWIN_PROP_TAB_CUSTOM9	    = 1 shl 27	 ; Use custom tab #9
HHWIN_TB_MARGIN 	    = 1 shl 28	 ; the window type has a margin

HHWIN_PARAM_PROPERTIES	    = 1 shl 1	 ; valid fsWinProperties
HHWIN_PARAM_STYLES	    = 1 shl 2	 ; valid dwStyles
HHWIN_PARAM_EXSTYLES	    = 1 shl 3	 ; valid dwExStyles
HHWIN_PARAM_RECT	    = 1 shl 4	 ; valid rcWindowPos
HHWIN_PARAM_NAV_WIDTH	    = 1 shl 5	 ; valid iNavWidth
HHWIN_PARAM_SHOWSTATE	    = 1 shl 6	 ; valid nShowState
HHWIN_PARAM_INFOTYPES	    = 1 shl 7	 ; valid apInfoTypes
HHWIN_PARAM_TB_FLAGS	    = 1 shl 8	 ; valid fsToolBarFlags
HHWIN_PARAM_EXPANSION	    = 1 shl 9	 ; valid fNotExpanded
HHWIN_PARAM_TABPOS	    = 1 shl 10	 ; valid tabpos
HHWIN_PARAM_TABORDER	    = 1 shl 11	 ; valid taborder
HHWIN_PARAM_HISTORY_COUNT   = 1 shl 12	 ; valid cHistory
HHWIN_PARAM_CUR_TAB	    = 1 shl 13	 ; valid curNavType

HHWIN_BUTTON_EXPAND	    = 1 shl 1	 ; Expand/contract button
HHWIN_BUTTON_BACK	    = 1 shl 2	 ; Back button
HHWIN_BUTTON_FORWARD	    = 1 shl 3	 ; Forward button
HHWIN_BUTTON_STOP	    = 1 shl 4	 ; Stop button
HHWIN_BUTTON_REFRESH	    = 1 shl 5	 ; Refresh button
HHWIN_BUTTON_HOME	    = 1 shl 6	 ; Home button
HHWIN_BUTTON_BROWSE_FWD     = 1 shl 7	 ; not implemented
HHWIN_BUTTON_BROWSE_BCK     = 1 shl 8	 ; not implemented
HHWIN_BUTTON_NOTES	    = 1 shl 9	 ; not implemented
HHWIN_BUTTON_CONTENTS	    = 1 shl 10	 ; not implemented
HHWIN_BUTTON_SYNC	    = 1 shl 11	 ; Sync button
HHWIN_BUTTON_OPTIONS	    = 1 shl 12	 ; Options button
HHWIN_BUTTON_PRINT	    = 1 shl 13	 ; Print button
HHWIN_BUTTON_INDEX	    = 1 shl 14	 ; not implemented
HHWIN_BUTTON_SEARCH	    = 1 shl 15	 ; not implemented
HHWIN_BUTTON_HISTORY	    = 1 shl 16	 ; not implemented
HHWIN_BUTTON_FAVORITES	    = 1 shl 17	 ; not implemented
HHWIN_BUTTON_JUMP1	    = 1 shl 18
HHWIN_BUTTON_JUMP2	    = 1 shl 19
HHWIN_BUTTON_ZOOM	    = 1 shl 20
HHWIN_BUTTON_TOC_NEXT	    = 1 shl 21
HHWIN_BUTTON_TOC_PREV	    = 1 shl 22

HHWIN_DEF_BUTTONS =HHWIN_BUTTON_EXPAND or HHWIN_BUTTON_BACK or HHWIN_BUTTON_OPTIONS or HHWIN_BUTTON_PRINT

; Button IDs
IDTB_EXPAND		= 200
IDTB_CONTRACT		= 201
IDTB_STOP		= 202
IDTB_REFRESH		= 203
IDTB_BACK		= 204
IDTB_HOME		= 205
IDTB_SYNC		= 206
IDTB_PRINT		= 207
IDTB_OPTIONS		= 208
IDTB_FORWARD		= 209
IDTB_NOTES		= 210 ; not implemented
IDTB_BROWSE_FWD 	= 211
IDTB_BROWSE_BACK	= 212
IDTB_CONTENTS		= 213 ; not implemented
IDTB_INDEX		= 214 ; not implemented
IDTB_SEARCH		= 215 ; not implemented
IDTB_HISTORY		= 216 ; not implemented
IDTB_FAVORITES		= 217 ; not implemented
IDTB_JUMP1		= 218
IDTB_JUMP2		= 219
IDTB_CUSTOMIZE		= 221
IDTB_ZOOM		= 222
IDTB_TOC_NEXT		= 223
IDTB_TOC_PREV		= 224

; Notification codes

HHN_FIRST = 0-860
HHN_LAST  = 0-879

HHN_NAVCOMPLETE   = HHN_FIRST-0
HHN_TRACK	  = HHN_FIRST-1
HHN_WINDOW_CREATE = HHN_FIRST-2

struct HHN_NOTIFY
    hdr    dd ?
    pszUrl dd ? ; Multi-byte, null-terminated string
ends

struct HH_POPUP
    cbStruct	  dd ?	   ; sizeof this structure
    hinst	  dd ?	   ; instance handle for string resource
    idString	  dd ?	   ; string resource id, or text id if pszFile is specified in HtmlHelp call
    pszText	  dd ?	   ; used if idString is zero
    pt		  POINT    ; top center of popup window
    clrForeground dd ?	   ; use -1 for default
    clrBackground dd ?	   ; use -1 for default
    rcMargins	  RECT	   ; amount of space between edges of window and text, -1 for each member to ignore
    pszFont	  dd ?	   ; facename, point size, char set, BOLD ITALIC UNDERLINE
ends

struct HH_AKLINK
    cbStruct	 dd ?	  ; sizeof this structure
    fReserved	 dd ?	  ; must be FALSE (really!)
    pszKeywords  dd ?	  ; semi-colon separated keywords
    pszUrl	 dd ?	  ; URL to jump to if no keywords found (may be NULL)
    pszMsgText	 dd ?	  ; Message text to display in MessageBox if pszUrl is NULL and no keyword match
    pszMsgTitle  dd ?	  ; Message text to display in MessageBox if pszUrl is NULL and no keyword match
    pszWindow	 dd ?	  ; Window to display URL in
    fIndexOnFail dd ?	  ; Displays index if keyword lookup fails.
ends


HHWIN_NAVTYPE_TOC	   = 0
HHWIN_NAVTYPE_INDEX	   = 1
HHWIN_NAVTYPE_SEARCH	   = 2
HHWIN_NAVTYPE_FAVORITES    = 3
HHWIN_NAVTYPE_HISTORY	   = 4	; not implemented
HHWIN_NAVTYPE_AUTHOR	   = 5
HHWIN_NAVTYPE_CUSTOM_FIRST = 11


IT_INCLUSIVE = 0
IT_EXCLUSIVE = 1
IT_HIDDEN    = 2


struct HH_ENUM_IT
    cbStruct	     dd ?	; size of this structure
    iType	     dd ?	; the type of the information type ie. Inclusive, Exclusive, or Hidden
    pszCatName	     dd ?	; Set to the name of the Category to enumerate the info types in a category; else NULL
    pszITName	     dd ?	; volitile pointer to the name of the infotype. Allocated by call. Caller responsible for freeing
    pszITDescription dd ?	; volitile pointer to the description of the infotype.
ends

struct HH_ENUM_CAT
    cbStruct	      dd ?     ; size of this structure
    pszCatName	      dd ?     ; volitile pointer to the category name
    pszCatDescription dd ?     ; volitile pointer to the category description
ends

struct HH_SET_INFOTYPE
    cbStruct	    dd ?	; the size of this structure
    pszCatName	    dd ?	; the name of the category, if any, the InfoType is a member of.
    pszInfoTypeName dd ?	; the name of the info type to add to the filter
ends


HHWIN_NAVTAB_TOP    = 0
HHWIN_NAVTAB_LEFT   = 1
HHWIN_NAVTAB_BOTTOM = 2


HH_MAX_TABS = 19  ; maximum number of tabs


HH_TAB_CONTENTS     = 0
HH_TAB_INDEX	    = 1
HH_TAB_SEARCH	    = 2
HH_TAB_FAVORITES    = 3
HH_TAB_HISTORY	    = 4
HH_TAB_AUTHOR	    = 5
HH_TAB_CUSTOM_FIRST = 11
HH_TAB_CUSTOM_LAST  = HH_MAX_TABS


HH_MAX_TABS_CUSTOM  = HH_TAB_CUSTOM_LAST - HH_TAB_CUSTOM_FIRST + 1

; HH_DISPLAY_SEARCH Command Related Structures and Constants

HH_FTS_DEFAULT_PROXIMITY = -1

struct HH_FTS_QUERY
   cbStruct	   dd ?   ; Sizeof structure in bytes.
   fUniCodeStrings dd ?   ; TRUE if all strings are unicode.
   pszSearchQuery  dd ?   ; String containing the search query.
   iProximity	   dd ?   ; Word proximity.
   fStemmedSearch  dd ?   ; TRUE for StemmedSearch only.
   fTitleOnly	   dd ?   ; TRUE for Title search only.
   fExecute	   dd ?   ; TRUE to initiate the search.
   pszWindow	   dd ?   ; Window to display in
ends

; HH_WINTYPE Structure

struct HH_WINTYPE
    cbStruct	    dd ? ; IN: size of this structure including all Information Types
    fUniCodeStrings dd ? ; IN/OUT: TRUE if all strings are in UNICODE
    pszType	    dd ? ; IN/OUT: Name of a type of window
    fsValidMembers  dd ? ; IN: Bit flag of valid members (HHWIN_PARAM_)
    fsWinProperties dd ? ; IN/OUT: Properties/attributes of the window (HHWIN_)
    pszCaption	    dd ?  ; IN/OUT: Window title
    dwStyles	    dd ?  ; IN/OUT: Window styles
    dwExStyles	    dd ?  ; IN/OUT: Extended Window styles
    rcWindowPos     RECT  ; IN: Starting position, OUT: current position
    nShowState	    dd ?  ; IN: show state (e.g., SW_SHOW)
    hwndHelp	    dd ?    ; OUT: window handle
    hwndCaller	    dd ?    ; OUT: who called this window
    paInfoTypes     dd ?    ; IN: Pointer to an array of Information Types
    ; The following members are only valid if HHWIN_PROP_TRI_PANE is set
    hwndToolBar     dd ?  ; OUT: toolbar window in tri-pane window
    hwndNavigation  dd ?  ; OUT: navigation window in tri-pane window
    hwndHTML	    dd ?  ; OUT: window displaying HTML in tri-pane window
    iNavWidth	    dd ?  ; IN/OUT: width of navigation window
    rcHTML	    RECT  ; OUT: HTML window coordinates
    pszToc	    dd ?  ; IN: Location of the table of contents file
    pszIndex	    dd ? ; IN: Location of the index file
    pszFile	    dd ? ; IN: Default location of the html file
    pszHome	    dd ? ; IN/OUT: html file to display when Home button is clicked
    fsToolBarFlags  dd ? ; IN: flags controling the appearance of the toolbar
    fNotExpanded    dd ? ; IN: TRUE/FALSE to contract or expand, OUT: current state
    curNavType	    dd ? ; IN/OUT: UI to display in the navigational pane
    tabpos	    dd ? ; IN/OUT: HHWIN_NAVTAB_TOP, HHWIN_NAVTAB_LEFT, or HHWIN_NAVTAB_BOTTOM
    idNotify	    dd ? ; IN: ID to use for WM_NOTIFY messages
    tabOrder	    rb HH_MAX_TABS + 1	  ; IN/OUT: tab order: Contents, Index, Search, History, Favorites, Reserved 1-5, Custom tabs
    cHistory	    dd ? ; IN/OUT: number of history items to keep (default is 30)
    pszJump1	    dd ? ; Text for HHWIN_BUTTON_JUMP1
    pszJump2	    dd ? ; Text for HHWIN_BUTTON_JUMP2
    pszUrlJump1     dd ? ; URL for HHWIN_BUTTON_JUMP1
    pszUrlJump2     dd ? ; URL for HHWIN_BUTTON_JUMP2
    rcMinSize	    RECT ; Minimum size for window (ignored in version 1)
    cbInfoTypes     dd ? ; size of paInfoTypes;
    pszCustomTabs   dd ? ; multiple zero-terminated strings
ends

HHACT_TAB_CONTENTS  = 0
HHACT_TAB_INDEX     = 1
HHACT_TAB_SEARCH    = 2
HHACT_TAB_HISTORY   = 3
HHACT_TAB_FAVORITES = 4

HHACT_EXPAND	= 0
HHACT_CONTRACT	= 1
HHACT_BACK	= 2
HHACT_FORWARD	= 3
HHACT_STOP	= 4
HHACT_REFRESH	= 5
HHACT_HOME	= 6
HHACT_SYNC	= 7
HHACT_OPTIONS	= 8
HHACT_PRINT	= 9
HHACT_HIGHLIGHT = 10
HHACT_CUSTOMIZE = 11
HHACT_JUMP1	= 12
HHACT_JUMP2	= 13
HHACT_ZOOM	= 14
HHACT_TOC_NEXT	= 15
HHACT_TOC_PREV	= 16
HHACT_NOTES	= 17
HHACT_LAST_ENUM = 18


struct HHNTRACK
    hdr        dd ?
    pszCurUrl  dd ?  ; Multi-byte, null-terminated string
    idAction   dd ?  ; HHACT_ value
    phhWinType dd ?  ; Current window type structure
ends


HH_GPROPID_SINGLETHREAD=1      ; VARIANT_BOOL: True for single thread
HH_GPROPID_TOOLBAR_MARGIN=2    ; long: Provides a left/right margin around the toolbar.
HH_GPROPID_UI_LANGUAGE=3       ; long: LangId of the UI.
HH_GPROPID_CURRENT_SUBSET=4    ; BSTR: Current subset.
HH_GPROPID_CONTENT_LANGUAGE=5  ; long: LandId for desired content.


struct HH_GLOBAL_PROPERTY
    id	dd ?
    var dd ?
ends